package com.ruoyi.shop.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 订单明细对象 shop_user_order_item
 * 
 * @author Alan Zhang
 * @date 2021-09-14
 */
public class ShopUserOrderItem extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单商品明细id */
    private Long id;

    /** 订单id */
    @Excel(name = "订单id")
    private Long orderId;

    /** 订单号 */
    @Excel(name = "订单号")
    private String orderNs;

    /** 购买人 */
    @Excel(name = "购买人")
    private Long buyerId;

    /** 购买人昵称 */
    @Excel(name = "购买人昵称")
    private String buyerNickname;

    /** 用户留言（备注） */
    @Excel(name = "用户留言")
    private String buyerMsg;

    /** 产品id */
    @Excel(name = "产品id")
    private Long productId;

    /** 产品标题 */
    @Excel(name = "产品标题")
    private String productTitle;

    /** 产品描述 */
    @Excel(name = "产品描述")
    private String productSummary;

    /** 规格 */
    @Excel(name = "规格")
    private String productSpec;

    /** 产品价格 */
    @Excel(name = "产品价格")
    private BigDecimal productPrice;

    /** 产品数量 */
    @Excel(name = "产品数量")
    private Integer productCount;

    /** 是否支持退款，1支持，0不支持。 */
    @Excel(name = "是否支持退款，1支持，0不支持。")
    private Integer withRefund;

    /** 运费 */
    @Excel(name = "运费")
    private BigDecimal deliveryCost;

    /** 其他费用 */
    @Excel(name = "其他费用")
    private BigDecimal otherCost;

    /** 其他费用说明 */
    @Excel(name = "其他费用说明")
    private String otherCostRemark;

    /** 具体金额 = 产品价格+运费+其他价格 */
    @Excel(name = "具体金额 = 产品价格+运费+其他价格")
    private BigDecimal totalAmount;

    /** 支付金额 = 产品价格+运费+其他价格 */
    @Excel(name = "支付金额 = 产品价格+运费+其他价格")
    private BigDecimal payAmount;

    /** 状态：1交易中、 2交易完成（但是可以申请退款） 、3取消交易 、4申请退款、 5拒绝退款、 6退款中、 7退款完成、 9交易结束 */
    @Excel(name = "状态")
    private Integer status;

    /** 退款订单号 */
    @Excel(name = "退款订单号")
    private String refundNo;

    /** 退款金额 */
    @Excel(name = "退款金额")
    private BigDecimal refundAmount;

    /** 退款描述 */
    @Excel(name = "退款描述")
    private String refundDesc;

    /** 退款时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "退款时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date refundTime;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setOrderId(Long orderId) 
    {
        this.orderId = orderId;
    }

    public Long getOrderId() 
    {
        return orderId;
    }
    public void setOrderNs(String orderNs) 
    {
        this.orderNs = orderNs;
    }

    public String getOrderNs() 
    {
        return orderNs;
    }
    public void setBuyerId(Long buyerId) 
    {
        this.buyerId = buyerId;
    }

    public Long getBuyerId() 
    {
        return buyerId;
    }
    public void setBuyerNickname(String buyerNickname) 
    {
        this.buyerNickname = buyerNickname;
    }

    public String getBuyerNickname() 
    {
        return buyerNickname;
    }
    public void setBuyerMsg(String buyerMsg) 
    {
        this.buyerMsg = buyerMsg;
    }

    public String getBuyerMsg() 
    {
        return buyerMsg;
    }
    public void setProductId(Long productId) 
    {
        this.productId = productId;
    }

    public Long getProductId() 
    {
        return productId;
    }

    public String getProductTitle() {
        return productTitle;
    }

    public void setProductTitle(String productTitle) {
        this.productTitle = productTitle;
    }

    public String getProductSummary() {
        return productSummary;
    }

    public void setProductSummary(String productSummary) {
        this.productSummary = productSummary;
    }

    public String getProductSpec() {
        return productSpec;
    }

    public void setProductSpec(String productSpec) {
        this.productSpec = productSpec;
    }

    public void setProductPrice(BigDecimal productPrice)
    {
        this.productPrice = productPrice;
    }

    public BigDecimal getProductPrice() 
    {
        return productPrice;
    }
    public void setProductCount(Integer productCount)
    {
        this.productCount = productCount;
    }

    public Integer getProductCount()
    {
        return productCount;
    }

    public void setWithRefund(Integer withRefund) 
    {
        this.withRefund = withRefund;
    }

    public Integer getWithRefund() 
    {
        return withRefund;
    }
    public void setDeliveryCost(BigDecimal deliveryCost) 
    {
        this.deliveryCost = deliveryCost;
    }

    public BigDecimal getDeliveryCost() 
    {
        return deliveryCost;
    }
    public void setOtherCost(BigDecimal otherCost) 
    {
        this.otherCost = otherCost;
    }

    public BigDecimal getOtherCost() 
    {
        return otherCost;
    }
    public void setOtherCostRemark(String otherCostRemark) 
    {
        this.otherCostRemark = otherCostRemark;
    }

    public String getOtherCostRemark() 
    {
        return otherCostRemark;
    }
    public void setTotalAmount(BigDecimal totalAmount) 
    {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getTotalAmount() 
    {
        return totalAmount;
    }
    public void setPayAmount(BigDecimal payAmount) 
    {
        this.payAmount = payAmount;
    }

    public BigDecimal getPayAmount() 
    {
        return payAmount;
    }

    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }
    public void setRefundNo(String refundNo) 
    {
        this.refundNo = refundNo;
    }

    public String getRefundNo() 
    {
        return refundNo;
    }
    public void setRefundAmount(BigDecimal refundAmount) 
    {
        this.refundAmount = refundAmount;
    }

    public BigDecimal getRefundAmount() 
    {
        return refundAmount;
    }
    public void setRefundDesc(String refundDesc) 
    {
        this.refundDesc = refundDesc;
    }

    public String getRefundDesc() 
    {
        return refundDesc;
    }
    public void setRefundTime(Date refundTime) 
    {
        this.refundTime = refundTime;
    }

    public Date getRefundTime() 
    {
        return refundTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("orderId", getOrderId())
            .append("orderNs", getOrderNs())
            .append("buyerId", getBuyerId())
            .append("buyerNickname", getBuyerNickname())
            .append("buyerMsg", getBuyerMsg())
            .append("productId", getProductId())
            .append("productTitle", getProductTitle())
            .append("productSummary", getProductSummary())
            .append("productSpec", getProductSpec())
            .append("productPrice", getProductPrice())
            .append("productCount", getProductCount())
            .append("withRefund", getWithRefund())
            .append("deliveryCost", getDeliveryCost())
            .append("otherCost", getOtherCost())
            .append("otherCostRemark", getOtherCostRemark())
            .append("totalAmount", getTotalAmount())
            .append("payAmount", getPayAmount())
            .append("status", getStatus())
            .append("refundNo", getRefundNo())
            .append("refundAmount", getRefundAmount())
            .append("refundDesc", getRefundDesc())
            .append("refundTime", getRefundTime())
            .append("updateTime", getUpdateTime())
            .append("createTime", getCreateTime())
            .toString();
    }
}
